Radio frequency local area network

ABSTRACT

An apparatus and a method for routing data in a radio data communication system having one or more host computers, one or more intermediate base stations, and one or more RF terminals organizes the intermediate base stations into an optimal spanning-tree network to control the routing of data to and from the RF terminals and the host computer efficiently and dynamically. Communication between the host computer and the RF terminals is achieved by using the network of intermediate base stations to transmit the data.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation-in-part of a copendingapplication of Robert C. Meier, U.S. Ser. No. 08/059,447, filed May 7,1993 (Attorney Docket Nos. 10132US03; DN37882XA); which is acontinuation-in-part of U.S. Ser. No. 08/056,827, filed May 3, 1993(Attorney Docket Nos. 10127US02; DN37882X), now U.S. Pat. No. 5,295,154,issued Mar. 15, 1994; which itself is a continuation of the applicationof Meier, et al., U.S. Ser. No. 07/769,425, filed Oct. 1, 1991 (AttorneyDocket. Nos. 91 P 668; DN37882), now abandoned.

The present application is also a continuation-in-part of copending Ser.No. 08/315,154, filed Oct. 4, 1994, Attorney Docket Nos. 10061US06 and38009E; which is a continuation-in-part of Ser. No. 08/238,090, filedMay 4, 1994, Attorney Docket No. 38009D, now abandoned; which is acontinuation-in-part of Ser. No. 08/177,738, filed Jan. 4, 1994,Attorney Docket No. 38009C, now abandoned; which is acontinuation-in-part of Ser. No. 08/147,766, filed Nov. 4, 1993,Attorney Docket No. 38009B, now abandoned; which is acontinuation-in-part of Ser. No. 08/073,142, filed Jun. 4, 1993,Attorney Docket No. 38009A, now abandoned; which is acontinuation-in-part of Ser. No. 08/058,905, filed May 6, 1993, AttorneyDocket No. 38009, now abandoned.

AUTHORIZATION PURSUANT TO 37 C.F.R. 1.71(d) AND (e)

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the Patent and TrademarkOffice patent file or records, but otherwise reserves all copyrightrights whatsoever.

INCORPORATION BY REFERENCE

The Applicant hereby incorporates herein by reference in theirentireties, including any and all figures and appendices, the followingpatent applications and patents: U.S. Pat. No. 5,295,154, issued Mar.15, 1994, in the name of Robert C. Meier (Attorney Docket Nos.10127US02; DN37882X); U.S. Pat. No. 5,394,436, issued Feb. 28, 1995, inthe names of Meier, et al., including Appendix A and Appendix B(Attorney Docket No. 37882YC); PCT International ApplicationPCT/US94/12742 of inventor Meier, Attorney Docket No. 38009F, includingAppendix A and Appendix B, with an International Filing Date of Nov. 4,1994, an International Publication Number of WO 95/12942 and anInternational Publication Date of May 11, 1995; pending application Ser.No. 08/318,154, filed Oct. 4, 1994, Attorney Docket No. 38009E,including Appendix A; and abandoned application Ser. No. 07/769,425,filed Oct. 1, 1991, in the names of Meier, et al. (Attorney Docket Nos.91 P 668; DN37882).

BACKGROUND OF THE INVENTION

In a typical radio data communication system having one or more hostcomputers and multiple RF terminals, communication between a hostcomputer and an RF terminal is provided by one or more base stations.Depending upon the application and the operating conditions, a largenumber of these base stations may be required to adequately serve thesystem. For example, a radio data communication system installed in alarge factory may require dozens of base stations in order to cover theentire factory floor.

In earlier RF data communication systems, the base stations weretypically connected directly to a host computer through multi-droppedconnections to an Ethernet communication line. To communicate between anRF terminal and a host computer, in such a system, the RF terminal sendsdata to a base station and the base station passes the data directly tothe host computer. Communicating with a host computer through a basestation in this manner is commonly known as hopping. These earlier RFdata communication systems used a single-hop method of communication.

In order to cover a larger area with an RF data communication system andto take advantage of the deregulation of the spread-spectrum radiofrequencies, later-developed RF data communication systems are organizedinto layers of base stations. As in earlier RF data communicationssystems, a typical system includes multiple base stations whichcommunicate directly with the RF terminals and the host computer. Inaddition, the system also includes intermediate stations thatcommunicate with the RF terminals, the multiple base stations, and otherintermediate stations. In such a system, communication from an RFterminal to a host computer may be achieved, for example, by having theRF terminal send data to an intermediate station, the intermediatestation send the data to a base station, and the base station send thedata directly to the host computer. Communicating with a host computerthrough more than one station is commonly known as a multiple-hopcommunication system.

Difficulties often arise in maintaining the integrity of suchmultiple-hop RF data communication systems. The system must be able tohandle both wireless and hard-wired station connections, efficientdynamic routing of data information, RF terminal mobility, andinterference from many different sources.

The present invention also relates to a wireless and wired communicationnetwork used to maintain communication pathways among wirelesscommunication devices and remote stations. As is well known, wired localarea networks (“LANs”), such as ethernet utilizing coaxial or twistedpair cabling (“wiring”), provide communication among remote stations,such as personal or host computers, which are commonly wired to a wiredLAN. Hereinafter, a wired LAN is referred to as a “wired subnet”. Tomaintain communication beyond the wired range of ethernet, for example,bridging devices are employed to route information between one wiredsection of ethernet to another wired section. The bridging devicesforward communication from one side of the bridging device onto theother, and vice versa. Smarter bridging devices are also known whichkeep track of the location of the remote stations so that forwardingonly occurs when necessary.

As is also well known, in typical wireless communication networks,wireless communication generally occurs directly between two or morewireless terminals. To overcome transmission range limitations, suchwireless networks have included wireless relaying transceivers to relayreceived communication, extending the range at which communication canbe maintained. However, depending on the mode of wireless communication,many wireless relaying transceivers may be needed to adequately servethe network requirements.

In earlier wireless communication systems, the wireless relayingtransceivers were also used to manage communication among a variety ofwireless communication devices. Such relaying transceivers have beencalled base stations. The base station were typically connected directlyto a host computer through multi-dropped connections to an ethernetcommunication line. To communicate between a wireless communicationdevice and a host computer, in such a system, the wireless communicationdevice sends data to a base station, and the base station passes thedata along a hard-wired (“wired”) link to the host computer.

In order to cover a larger area with a wireless communication system andto take advantage of the de-regulation of the spread-spectrum radiofrequencies, later-developed wireless communication systems areorganized into layers of base stations. As in earlier wirelesscommunications systems, a typical system includes multiple base stationswhich communicate directly with wireless terminals and the hostcomputer.

In such wireless networks, difficulties often arise in maintaining theintegrity of wireless communications. The wireless communication networkmust be able to handle both wireless and wired connectivity, efficientrouting of data information, wireless communication device mobility, andinterference from many different sources.

Customarily, wired local area networks support wireless communicationdevices that occupy fixed locations. Message traffic to and from suchdevices are routed via paths that do not change with time. Absence of acommunication link to a device reflects a fault condition, i.e., abreakdown in some network component.

Thus, one object of the present invention is to route data through awired and wireless communication network efficiently, dynamically, andwithout looping.

Another object of the present invention is to make the routing of datatransparent to wireless terminals and remote stations located on IEEE802.3 type subnets.

It is a further object of the present invention for the network to becapable of handling wireless communication device mobility and lostnetwork nodes with minimal impact on the entire data communicationsystem.

It is a still further object of the invention to allow wireless mobilecomputing devices, a type of wireless communication device, to movefreely within wireless networks consisting of many relay nodes whiletransparently maintaining network connectivity with a plurality of wiredsubnets.

SUMMARY OF THE INVENTION

The present invention solves many of the problems inherent in amultiple-hop data communication system. The present invention comprisesan RF Local-Area Network capable of efficient and dynamic handling ofdata by routing communications between the RF Terminals and the hostcomputer through a network of intermediate base stations.

In one embodiment of the present invention, the RF data communicationsystem contains one or more host computers and multiple gateways,bridges, and RF terminals. Gateways are used to pass messages to andfrom a host computer and the RF Network. A host port is used to providea link between the gateway and the host computer. In addition, gatewaysmay include bridging functions and may pass information from one RFterminal to another. Bridges are intermediate relay nodes which repeatdata messages. Bridges can repeat data to and from bridges, gateways andRF terminals and are used to extend the range of the gateways.

The RF terminals are attached logically to the host computer and use anetwork formed by a gateway and the bridges to communicate with the hostcomputer. To set up the network, an optimal configuration for conductingnetwork communication spanning tree is created to control the flow ofdata communication. To aid understanding by providing a more visualdescription, this configuration is referred to hereafter as a “spanningtree” or “optimal spanning tree”.

Specifically, root of the spanning tree are the gateways; the branchesare the bridges; and non-bridging stations, such as RF terminals, arethe leaves of the tree. Data are sent along the branches of the newlycreated optimal spanning tree. Nodes in the network use a backwardlearning technique to route packets along the correct branches.

One object of the present invention is to route data efficiently,dynamically, and without looping. Another object of the presentinvention is to make the routing of the data transparent to the RFterminals. The RF terminals, transmitting data intended for the hostcomputer, are unaffected by the means ultimately used by the RF Networkto deliver their data.

It is a further object of the present invention for the network to becapable of handling RF terminal mobility and lost nodes with minimalimpact on the entire RF data communication system.

The present invention also solves many of the foregoing problems byusing a communication network comprising two wired subnets, a wiredaccess point connected to each of the subnets, and a plurality ofintermediate wireless access points. The plurality of intermediatewireless access points provide a wireless pathway between the wiredaccess points connected to the two subnets. Together, the two wiredaccess points and the plurality of intermediate wireless access pointsform a spanning tree which interconnects the two subnets.

In another embodiment of the invention, the network may also comprise aplurality of terminal nodes which utilize the wired access points andthe plurality of intermediate wireless access points to communicate onthe network.

In a further embodiment of the invention, the network may also comprisea remote station attached to each of the two wired subnets. The wiredaccess points and the plurality of intermediate wireless access pointsmaintain communication connectivity between the two remote stations. Inaddition, the network may further comprise a wireless communicationdevice which utilizes the two wired access points and the plurality ofintermediate wireless access points to communicate with the two remotestations.

In a still further embodiment, the network may also comprise a thirdsubnet and a third wired access point connected thereto. The third wiredaccess point participates in the spanning tree, and, along with theother two wired access points and the plurality of intermediate wirelessaccess points, communicatively interconnects the three wired subnets.The network may also comprise a plurality of wireless communicationdevices which utilize the three wired access points and the plurality ofintermediate wireless access points to communicate with the threesubnets.

The full details of the subject invention will become apparent from thefollowing detailed description taken in conjunction with the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a functional block diagram of an RF data communication systemincorporating the RF local-area network of the present invention.

FIG. 2 illustrates the overall open wireless local area network (OWL)architecture according to the present invention.

FIG. 3 shows an exemplary expanded configuration of FIG. 2, providingadditional detail of the OWL radio network.

FIG. 4 illustrates the MAC protocol stacks used in an exemplaryconfiguration of the present invention to provide for communicationbetween two terminal nodes via a relay node.

FIG. 5 illustrates an OWL bridge protocol stack used by each wirelessdomain access point (WDAP), an OWL bridge, to bridge the OWL radionetwork with an 802 type wired subnet, in an embodiment according to thepresent invention.

FIG. 6 is a data flow diagram illustrating how data flows through thebridge protocol stack of FIG. 5.

FIG. 7 illustrates an exemplary configuration of the OWL architectureaccording to one embodiment of the present invention.

FIG. 8 illustrates an alternate embodiment of the present inventionwherein a WDAPs participates in more than one OWL radio network.

FIG. 9 is a diagram illustrating yet another variation of the OWLarchitecture according to another embodiment of the present inventionwherein two OWL radio networks are used.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 is a functional block diagram of an RF data communication system.In one embodiment of the present invention, the RF data communicationsystem has a host computer 910, a network controller 914 and bridges 922and 924 attached to a data communication link 916. Also attached to thedata communication link 916 is a gateway 920 which acts as the root nodefor the spanning tree of the RF data network of the present invention. Abridge 942 is attached to the gateway 920 through a hard-wiredcommunication link and bridges 940 and 944 are logically attached togateway 920 by two independent RF links. Additional bridges 946, 948,950 and 952 are also connected to the RF Network and are shown in theFIG. 1. Note that, although shown separate from the host computer 910,the gateway 920 (the spanning tree root node) may be part of hostcomputer 910.

FIG. 1 further shows RF terminals 9100 and 9102 attached to bridge 922via RF links and RF terminal 9104 attached to bridge 924 via an RF link.Also, RF terminals 9106, 9108, 9110, 9112, 9114, 9116, 9118, and 9120can be seen logically attached to the RF Network through theirrespective RF links. The RF terminals in FIG. 1 are representative ofnon-bridging stations. In alternate embodiments of the presentinvention, the RF Network could contain any type of device capable ofsupporting the functions needed to communicate in the RF Network such ashard-wired terminals, remote printers, stationary bar code scanners, orthe like. The RF data communication system, as shown in FIG. 1,represents the configuration of the system at a discrete moment in timeafter the initialization of the system. The RF links, as shown, aredynamic and subject to change. For example, changes in the structure ofthe RF data communication system can be caused by movement of the RFterminals and by interference that affects the RF communication links.

In the preferred embodiment, the host computer 910 is an IBM 3090, thenetwork controller 914 is a model RC3250 of the Norand Corporation, thedata communication link 916 is an Ethernet link, the nodes 920, 922,924, 940, 942, 944, 946, 948, 950 and 952 are intelligent basetransceiver units of the type RB4000 of the Norand Corporation, and theRF terminals 9100, 9102, 9104, 9106, 9108, 9110, 9112, 9114, 9116, 9118and 9120 are of type RT1100 of the Norand Corporation.

The optimal spanning tree, which provides the data pathways throughoutthe communication system, is stored and maintained by the network as awhole. Each node in the network stores and modifies information whichspecifies how local communication traffic should flow. Optimal spanningtrees assure efficient, adaptive (dynamic) routing of informationwithout looping.

To initialize the RF data communication system, the gateway 920 and theother nodes are organized into an optimal spanning tree rooted at thegateway 920. To form the optimal spanning tree, in the preferredembodiment the gateway 920 is assigned a status of ATTACHED and allother bridges are assigned the status UNATTACHED. The gateway 920 isconsidered attached to the spanning tree because it is the root node.Initially, all other bridges are unattached and lack a parent in thespanning tree. At this point, the attached gateway node 920 periodicallybroadcasts a specific type of polling packet referred to hereafter as“HELLO packets”. The HELLO packets can be broadcast using known methodsof communicating via radio frequency (RF) link or via a direct wirelink. In the preferred embodiment of the present invention, the RF linkis comprised of spread-spectrum transmissions using a polling protocol.Although a polling protocol is preferred, a carrier-sensemultiple-access (CSMA), busy-tone, or any other protocol might alsomanage the communication traffic on the RF link.

HELLO packets contain 1) the address of the sender, 2) the hoppingdistance that the sender is from the root, 3) a source address, 4) acount of nodes in the subtree which flow through that bridge, and 5) alist of system parameters. Each node in the network is assigned a uniquenetwork service address and a node-type identifier to distinguishbetween different nodes and different node types. The distance of a nodefrom the root node is measured in hops times the bandwidth of each hop.The gateway root is considered to be zero hops away from itself. Theunattached bridges are in a LISTEN state. During the LISTEN state, abridge will listen to the HELLO messages that are broadcast. Bylistening to the HELLO messages, bridges can learn which nodes areattached to the spanning tree. The unattached bridges analyze thecontents of the HELLO messages to determine whether to requestattachment to the broadcasting node. In the preferred embodiment, abridge attempts to attach to the node that is logically closest to theroot node. In the preferred embodiment, the logical distance is basedupon the number of hops needed to reach the root node and the bandwidthof those hops. The distance the attached node is away from the root nodeis found in the second field of the HELLO message that is broadcast.

In another embodiment of the present invention, the bridges consider thenumber of nodes attached to the attached node as well as the logicaldistance of the attached node from the root node. If an attached node isoverloaded with other attached nodes, the unattached bridge may requestattachment to a less loaded node.

After attaching to an attached node, the newly attached bridge (thechild) must determine its distance from the root node. To arrive at thedistance of the child from the root node, the child adds the broadcastdistance of its parent from the root node to the distance of the childfrom its parent. In the preferred embodiment, the distance of a childfrom its parent is based on the bandwidth of the data communicationlink. For example, if the child attaches to its parent via a hard-wiredlink (data rate 26,000 baud), then the distance of that communicationlink might equal, for example, one hop. However, if the child attachesto its parent via an RF link (data rate 9600 baud), then the distance ofthat communication link might correspondingly be equal 3 hops. Thenumber of the hop corresponds directly to the communication speed of thelink. This may not only take into consideration baud rate, but also suchfactors as channel interference.

Initially, only the root gateway node 920 is broadcasting HELLO messagesand only nodes 940, 942 and 944 are within range of the HELLO messagesbroadcast by the gateway. Therefore, after the listening period hasexpired, nodes 940, 942 and 944 request attachment to the gateway node920. The unattached nodes 940, 942 and 944 send ATTACH.request packetsand the attached gateway node 920 acknowledges the ATTACH.requestpackets with local ATTACH.confirm packets. The newly attached bridgesare assigned the status ATTACHED and begin broadcasting their own HELLOpackets, looking for other unattached bridges. Again, the remainingunattached nodes attempt to attach to the attached nodes that arelogically closest to the root node. For example, node 948 is withinrange of HELLO messages from both nodes 940 and 942. However, node 940is three hops, via an RF link, away from the gateway root node 920 andnode 942 is only one hop, via a hard-wired link, away from the gatewayroot node 920. Therefore, node 948 attaches to node 942, the closestnode to the gateway root node 920.

The sending of HELLO messages, ATTACH.request packets and ATTACH.confirmpackets continues until the entire spanning tree is established. Inaddition, attached bridges may also respond to HELLO messages. If aHELLO message indicates that a much closer route to the root node isavailable, the attached bridge sends a DETACH packet to its old parentand an ATTACH.request packet to the closer node. To avoid instability inthe system and to avoid overloading any given node, an attached bridgewould only respond to a HELLO message if the hop count in a HELLO packetis greater than a certain threshold value, CHANGE_THRESHOLD. In thepreferred embodiment, the value of the CHANGE_THRESHOLD equals 3. Inthis manner, an optimal spanning tree is formed that is capable oftransmitting data without looping.

Nodes, other than the gateway root node, after acknowledging anATTACH.request packet from a previously unattached node, will send theATTACH.request packet up the branches of the spanning tree to thegateway root node. As the ATTACH.request packet is being sent to thegateway root node, other nodes attached on the same branch record thedestination of the newly attached node in their routing entry table.When the ATTACH.request packet reaches the gateway root node, thegateway root node returns an end-to-end ATTACH.confirm packet.

After the spanning tree is initialized, the RF terminals listen forperiodically broadcasted Hello packets to determine which attached nodesare in range. After receiving HELLO messages from attached nodes, an RFterminal responding to an appropriate poll sends an ATTACH.requestpacket to attach to the node logically closest to the root. For example,RF terminal 9110 is physically closer to node 944. However, node 944 isthree hops, via an RF link, away from the gateway root node 920 and node942 is only one hop, via a hard-wired link, away from the gateway rootnode 920. Therefore, RF terminal 9110, after hearing HELLO messages fromboth nodes 942 and 944, attaches to node 942, the closest node to thegateway root node 920. Similarly, RF terminal 114 hears HELLO messagesfrom nodes 948 and 950. Nodes 948 and 950 are both four hops away fromthe gateway root node 920. However, node 948 has two RF terminals 9110and 9112 already attached to it while node 950 has only one RF terminal9116 attached to it. Therefore, RF terminal 9114 will attach to node950, the least busy node of equal distance to the gateway root node 920.

The attached node acknowledges the ATTACH.request and sends theATTACH.request packet to the gateway root node. Then, the gateway rootnode returns an end-to-end ATTACH.confirm packet. In this manner, theend-to-end ATTACH.request functions as a discovery packet enabling thegateway root node, and all other nodes along the same branch, to learnthe address of the RF terminal quickly. This process is called backwardlearning. Nodes learn the addresses of terminals by monitoring thetraffic from terminals to the root. If a packet arrives from a terminalthat is not contained in the routing table of the node, an entry is madein the routing table. The entry includes the terminal address and theaddress of the node that sent the packet. In addition, an entry timer isset for that terminal. The entry timer is used to determine when RFterminals are actively using the attached node. Nodes maintain entriesonly for terminals that are actively using the node for communication.If the entry timer expires due to lack of communication, the RF terminalentry is purged from the routing table.

The RF links among the RF terminals, the bridges, and the gateway areoften lost. Therefore, a connection-oriented data-link service is usedto maintain the logical node-to-node links. In the absence of networktraffic, periodic messages are sent and received to ensure the stabilityof the RF link. As a result, the loss of a link is quickly detected andthe RF Network can attempt to establish a new RF link before datatransmission from the host computer to an RF terminal is adverselyaffected.

Communication between terminals and the host computer is accomplished byusing the resulting RF Network. To communicate with the host computer,an RF terminal sends a data packet in response to a poll from the bridgeclosest to the host computer. Typically, the RF terminal is attached tothe bridge closest to the host computer. However, RF terminals areconstantly listening for HELLO and polling messages from other bridgesand may attach to, and then communicate with, a bridge in the table ofbridges that is closer to the particular RF terminal. Under certainoperating conditions, duplicate data packets can be transmitted in theRF Network. For example, it is possible for an RF terminal to transmit adata packet to its attached node, for the node to transmit theacknowledgment frame, and for the RF terminal not to receive theacknowledgment. Under such circumstances, the RF terminal willretransmit the data. If the is duplicate data packet is updated into thedatabase of the host computer, the database would become corrupt.Therefore, the RF Network of the present invention detects duplicatedata packets. To ensure data integrity, each set of data transmissionsreceives a sequence number. The sequence numbers are continuouslyincremented, and duplicate sequence numbers are not accepted.

When a bridge receives a data packet from a terminal directed to thehost computer, the bridge forwards the data packet to the parent node onthe branch. The parent node then forwards the data packet to its parentnode. The forwarding of the data packet continues until the gateway rootnode receives the data packet and sends it to the host computer.Similarly, when a packet arrives at a node from the host computerdirected to an RF terminal, the node checks its routing entry table andforwards the data packet to its child node which is along the branchdestined for the RF terminal. It is not necessary for the nodes alongthe branch containing the RF terminal to know the ultimate location ofthe RF terminal. The forwarding of the data packet continues until thedata packet reaches the final node on the branch, which then forwardsthe data packet directly to the terminal itself.

Communication is also possible between RF terminals. To communicate withanother RF terminal, the RF terminal sends a data packet to its attachedbridge. When the bridge receives the data packet from a terminaldirected to the host computer, the bridge checks to see if thedestination address of the RF terminal is located within its routingtable. If it is, the bridge simply sends the message to the intended RFterminal. If not, the bridge forwards the data packet to its parentnode. The forwarding of the data packet up the branch continues until acommon parent between the RF terminals is found. Then, the common parent(often the gateway node itself) sends the data packet to the intended RFterminal via the branches of the RF Network.

During the normal operation of the RF Network, RF terminals can becomelost or unattached to their attached node. If an RF terminal becomesunattached, for whatever reason, its routing entry is purged and the RFterminal listens for HELLO or polling messages from any attached nodesin range. After receiving HELLO or polling messages from attached nodes,the RF terminal sends an ATTACH.request packet to the attached nodeclosest to the root. That attached node acknowledges the ATTACH.requestand sends the ATTACH.request packet onto the gateway root node. Then,the gateway root node returns an end-to-end ATTACH.confirm packet.

Bridges can also become lost or unattached during normal operations ofthe RF Network. If a bridge becomes lost or unattached, all routingentries containing the bridge are purged. The bridge then broadcasts aHELLO.request with a global bridge destination address. Attached nodeswill broadcast HELLO packets immediately if they receive anATTACH.request packet with a global destination address. This helps thelost node re-attach. Then, the bridge enters the LISTEN state to learnwhich attached nodes are within range. The unattached bridge analyzesthe contents of broadcast HELLO messages to determine whether to requestattachment to the broadcasting node. Again, the bridge attempts toattach to the node that is logically closest to the root node. Afterattaching to the closest node, the bridge begins broadcasting HELLOmessages to solicit ATTACH.requests from other nodes or RF terminals.

The spread-spectrum system provides a hierarchical radio frequencynetwork of on-line terminals for data entry and message transfer in amobile environment. The network is characterized by sporadic datatraffic over multiple-hop data paths consisting of RS485 or ethernetwired links and single-channel direct sequenced spread spectrum links.The network architecture is complicated by moving, hidden, and sleepingnodes. The spread spectrum system consists of the following types ofdevices:

Terminal controller—A gateway which passes messages from a host port tothe RF network; and which passes messages from the network to the hostport. The host port (directly or indirectly) provides a link between thecontroller and a “host” computer to which the terminals are logicallyattached.

Base station—An intermediate relay node which is used to extend therange of the controller node. Base station-to-controller or basestation-to-base station links can be wired or wireless RF.

Terminal—Norand RF hand-held terminals, printers, etc. In addition, acontroller device has a terminal component.

The devices are logically organized as nodes in an (optimal) spanningtree, with the controller at the root, internal nodes in base stationsor controllers on branches of the tree, and terminal nodes as (possiblymobile) leaves on the tree. Like a sink tree, nodes closer to the rootof the spanning tree are said to be “downstream” from nodes which arefurther away. Conversely, all nodes are “upstream” from the root.Packets are only sent along branches of the spanning tree. Nodes in thenetwork use a “BACKWARD LEARNING” technique to route packets along thebranches of the spanning tree.

Devices in the spanning tree are logically categorized as one of thefollowing three node types:

1) Root (or root bridge)—A controller device which functions as the rootbridge of the network spanning tree. In the preferred embodiment, thespanning tree has a single root node. Initially, all controllers areroot candidates from which a root node is selected. This selection maybe based on the hopping distance to the host, preset priority, randomselection, etc.

2) Bridge—An internal node in the spanning tree which is used to“bridge” terminal nodes together into an interconnected network. Theroot node is also considered a bridge and the term “bridge” may be usedto refer to all non-terminal nodes or all non-terminal nodes except theroot, depending on the context herein. A bridge node consists of anetwork interface function and a routing function.

3) Terminal—leaf node in the spanning tree. A terminal node can beviewed as the software entity that terminates a branch in the spanningtree.

A controller device contains a terminal node(s) and a bridge node. Thebridge node is the root node if the controller is functioning as theroot bridge. A base station contains a bridge node. A terminal devicecontains a terminal node and must have a network interface function. A“bridging entity” refers to a bridge node or to the network interfacefunction in a terminal.

The basic requirements of the system are the following.

a) Wired or wireless node connections.

b) Network layer transparency.

c) Dynamic/automatic network routing configuration.

d) Terminal mobility. Terminals should be able to move about the RFnetwork without losing an end-to-end connection.

e) Ability to accommodate sleeping terminals.

f) Ability to locate terminals quickly.

g) Built-in redundancy. Lost nodes should have minimal impact on thenetwork.

h) Physical link independence. The bridging algorithm is consistentacross heterogeneous physical links.

The software for the spread-spectrum system is functionally layered asfollows.

Medium Access Control (MAC)

The MAC layer is responsible for providing reliable transmission betweenany two nodes in the network (i.e. terminal-to-bridge). The MAC has achannel access control component and a link control component. The linkcontrol component facilitates and regulates point-to-point frametransfers in the absence of collision detection. The MAC channel accesscontrol component regulates access to the network. Note that herein, theMAC layer is also referred to as the Data Link layer.

Bridging Layer

The bridging layer, which is also referred to herein as the networklayer, has several functions as follows.

1. The bridging layer uses a “HELLO protocol” to organize nodes in thenetwork into an optimal spanning tree rooted at the root bridge. Thespanning tree is used to prevent loops in the topology. Interiorbranches of the spanning tree are relatively stable (i.e. controller andrelay stations do not move often). Terminals, which are leaves on thespanning three, may become unattached, and must be reattached,frequently.

2. The bridging layer routes packets from terminals to the host, fromthe host to terminals, and from terminals to terminals along branches ofthe spanning tree.

3. The bridging layer provides a service for storing packets forSLEEPING terminals. Packets which cannot be delivered immediately can besaved by the bridging entity in a parent node for one or more HELLOtimes.

4. The bridging layer propagates lost node information throughout thespanning tree.

5. The bridging layer maintains the spanning tree links.

6. The bridging layer distributes network interface addresses.

Logical Link Control Layer

A logical link control layer, also known herein as the Transport layerherein, is responsible for providing reliable transmission between anytwo nodes in the network (i.e., terminal-to-base station). The data-linklayer provides a connection-oriented reliable service and aconnectionless unreliable service. The reliable service detects anddiscards duplicate packets and retransmits lost packets. The unreliableservices provides a datagram facility for upper layer protocols whichprovide a reliable end-to-end data path. The data-link layer providesISO layer 2 services for terminal-to-host application sessions which runon top of an end-to-end terminal-to-host transport protocol. However,the data-link layer provides transport (ISO layer 4) services forsessions contained within the SST network.

Higher Layers

For terminal-to-terminal sessions contained within the SST network, thedata-link layer provides transport layer services and no additionalnetwork or transport layer is required. In this case, the MAC, bridging,and data-link layers discussed above can be viewed as a data-link layer,a network layer, and a transport layer, respectively. Forterminal-to-host-application sessions, higher ISO layers exist on top ofthe SST data-link layer and must be implemented in the terminal and hostcomputer, as required. This document does not define (or restrict) thoselayers. This document does discuss a fast-connect VMTP-like transportprotocol which is used for transient internal terminal-to-terminalsessions.

Specifically, a network layer has several functions, as follows.

1) The network layer uses a “hello protocol” to organize nodes in thenetwork into an optimal spanning tree rooted at the controller. (Aspanning tree is required to prevent loops in the topology.). Interiorbranches of the spanning tree are relatively stable (i.e., thecontroller and base stations do not move often). Terminals, which areleaves on the spanning tree, become unattached, and must be reattachedfrequently.

2) The network layer routes messages from terminals to the host, fromthe host to terminals, and from terminals to terminals along branches ofthe spanning tree.

3) The network layer provides a service for storing messages forSLEEPING terminals. Messages which cannot be delivered immediately canbe saved by the network entity in a parent node for one or more hellotimes.

4) The network layer propagates lost node information throughout thespanning tree.

5) The network layer maintains the spanning tree links in the absence ofregular data traffic.

A transport layer is responsible for establishing and maintaining areliable end-to-end data path between transport access points in any twonodes in the network. The transport layer provides unreliable, reliableand a transaction-oriented services. The transport layer should beimmune to implementation changes in the network layer.

The responsibilities of the transport layer include the following.

1) Establishing and maintaining TCP-like connections for reliableroot-to-terminal data transmission.

2) Maintaining VMTP-like transaction records for reliable transientmessage passing between any two nodes.

3) Detecting and discarding duplicate packets.

4) Retransmitting lost packets.

Layers 1 through 4 are self-contained within the Norand RF network, andare independent of the host computer and of terminal applications. Thesession layer (and any higher layers) are dependent on specificapplications. Therefore, the session protocol (and higher protocols)must be implemented as required. Note that a single transport accesspoint is sufficient to handle single sessions with multiple nodes.Multiple concurrent sessions between any two nodes could be handled witha session identifier in a session header.

Network address requirements are as follows. DLC framed contain a hopdestination and source address in the DLC header. network packetscontain an end-to-end destination and a source address in the networkheader. Transport messages do not contain an address field; instead, atransport connection is defined by network layer source and destinationaddress pairs. Multiple transport connections require multiple networkaddress pairs.

The transport header contains a TRANSPORT ACCESS POINT identifier. DLCand network addresses are consistent and have the same format. Each nodehas a unique LONG ADDRESS which is programmed into the node at thefactory. The long address is used only to obtain a SHORT ADDRESS fromthe root node.

The network entity in each node obtains a SHORT ADDRESS from the rootnode, which identifies the node uniquely. The network entity passes theshort address to the DLC entity. Short addresses are used to minimizepacket sizes.

Short addresses consist of the following. There is: an address lengthbit (short or long).

a spanning tree identified.

a node-type identifier. Node types are well known.

a unique multi-cast or broadcast node identifier.

The node-identifier parts of root addresses are well known and areconstant. A default spanning tree identifier is well known by all nodes.A non-default spanning tree identifier can be entered into the root node(i.e., by a network administrator) and advertised to all other nodes in“hello” packets. The list of non-default spanning trees to which othernodes can attach must be entered into each node.

A node-type identifier of all 1's is used to specify all node types. Anode identifier of all 1's is used to specify all nodes of the specifiedtype. A DLC identifier of all 0's is used to specify a DLC entity whichdoes not yet have an address. The all-0's address is used in DLC framesthat are used to send and receive network ADDRESS packets. (The networkentity in each node filters ADDRESS packets based on the networkaddress.)

Short-address allocation is accomplished as follows. Short nodeidentifiers of root nodes are well known. All other nodes must obtain ashort node identifier from the root. To obtain a short address, a nodesend an ADDRESS request packet to the root node. The source addresses(i.e., DLC and network) in the request packet are LONG ADDRESSES. Theroot maintains an address queue of used and unused SHORT ADDRESSES. Ifpossible, the root selects an available short address, associates theshort address with the long address of the requesting node, and returnsthe short address to the requesting node in an ADDRESS acknowledgepacket. (Note that the destination address in the acknowledge packet isa long address.)

A node must obtain a (new) short address initially and whenever anADDRESS-TIMEOUT inactivity period expires without having the nodereceive a packet from the network entity in the root.

The network entity in the root maintains addresses in the address queuein least recently used order. Whenever a packet is received, the sourceaddress is moved to the end of the queue. The address at the head of thequeue is available for use by a requesting node if it has never beenused or if it has been inactive for a MAX-ADDRESS-LIFE time period.

MAX-ADDRESS-LIFE must be larger than ADDRESS-TIMEOUT to ensure that anaddress is not in use by any node when it becomes available for anothernode. If the root receives an ADDRESS request from a source for which anentry exists in the address queue, the root simply updates the queue andreturns the old address.

The network layer organizes nodes into an optimal spanning tree with thecontroller at the root of the tree. (Note that the spanning threeidentifier allows two logical trees to exist in the same coverage area.)Spanning tree organization is facilitated with a HELLO protocol whichallows nodes to determine the shortest path to the root before attachingto the spanning tree. All messages are routed along branches of thespanning tree.

Nodes in the network are generally categorized as ATTACHED orUNATTACHED. Initially, only the root node is attached. A singlecontroller may be designated as the root, or multiple root candidates(i.e. controllers) may negotiate to determine which node is the root.Attached bridge nodes and root candidates transmit “HELLO” packets atcalculated intervals. The HELLO packets include:

a) the source address, which includes the spanning tree ID).

b) a broadcast destination address.

c) a “seed” value from which the time schedule of future hello messagescan be calculated.

d) a hello slot displacement time specifying an actual variation thatwill occur in the scheduled arrival of the very next hello message (thescheduled arrival being calculated from the “seed”).

e) the distance (i.e., path cost) of the transmitter from the host. Theincremental portion of the distance between a node and its parent isprimarily a function of the type of physical link (i.e., ethernet,RS485, RF, or the like). If a signal-strength indicator is available,connections are biased toward the link with the best signal strength.The distance component is intended to bias path selection toward (i.e.,wired) high-speed connections. Setting a minimum signal strengththreshold helps prevent sporadic changes in the network. In addition,connections can be biased to balance the load (i.e., the number ofchildren) on a parent node.

f) a pending message list. Pending message lists consist of 0 or moredestination-address/message-length pairs. Pending messages for terminalsare stored in the terminals parent node.

g) a detached-node list. Detached-node lists contain the addresses ofnodes which have detached from the spanning tree. The root maintains twolists. A private list consists of all detached node addresses, and anadvertised list consists of the addresses of all detached nodes whichhave pending transport messages. The addresses in the hello packet areequivalent to the advertised list.

An internal node learns which entries should be in its list from hellomessages transmitted by its parent node. The root node builds itsdetached-node lists from information received in DETACH packets. Entriesare included in hello messages for DETACH-MSG-LIFE hello times.

Attached notes broadcast “SHORT HELLO” messages immediately if theyreceive an “HELLO.request” packet with a global destination address;otherwise, attached nodes will only broadcast hello messages atcalculated time intervals in “hello slots.” Short hello messages do notcontain a pending-message or detached-node list. Short hello messagesare sent independently of regular hello messages and do not affectregular hello timing.

Unattached nodes (nodes without a parent in the spanning tree) are,initially, in an “UNATTACHED LISTEN” state. During the listen state, anode learns which attached base station/controller is closest to theroot node by listening to hello messages. After the listening periodexpires an unattached node sends an ATTACH.request packet to theattached node closest to the root. The attached node immediatelyacknowledges the ATTACH.request, and send the ATTACH.request packet ontothe root (controller) node. The root node returns the request as anend-to-end ATTACH.confirm packet. If the newly-attached node is a basestation, the node calculates its link distance and adds the distance tothe distance of its parent before beginning to transmit hello messages.

The end-to-end ATTACH.request functions as a discovery packet, andenables the root node to learn the address of the source node quickly.The end-to-end ATTACH.request, when sent from a node to the root, doesnot always travel the entire distance. When a downstream node receivesan ATTACH.request packet and already has a correct routing entry for theassociated node, the downstream node intercepts the request and returnsthe ATTACH.confirm to the source node. (Note that any data piggy-backedon the ATTACH.request packet must still be forwarded to the host.) Thissituation occurs whenever a “new” path has more than one node in commonwith the “old” path.

The LISTEN state ends after MIN_HELLO hello time slots if hello messageshave been received from at least one node. If no hello messages havebeen received the listening node waits and retries later.

An attached node may respond to a hello message from a node other thanits parent (i.e., with an ATTACH.request) if the difference in the hopcount specified in the hello packet exceeds a CHANGE-THRESHOLD level.

Unattached nodes may broadcast a GLOBAL ATTACH.request with a multi-castbase station destination address to solicit short hello messages fromattached base stations. The net effect is that the LISTEN state may(optionally) be shortened. (Note that only attached base station or thecontroller may respond to ATTACH.requests.) Normally, this facility isreserved for base stations with children and terminals with transactionsin progress.

ATTACH.requests contain a (possibly empty) CHILD LIST, to enableinternal nodes to update their routing tables. ATTACH.requests alsocontain a “count” field which indicates that a terminal may be SLEEPING.The network entity in the parent of a SLEEPING terminal con temporarilystore messages for later delivery. If the count field is non-zero, thenetwork entity in a parent node will store pending messages until 1) themessage is delivered, or 2) “count” hello times have expired.

Transport layer data can be piggy-backed on an attached request packetfrom a terminal. (i.e., an attach request/confirm can be implementedwith a bit flag in the network header of a data packet.)

Network Layer Routing.

All messages are routed along branches of the spanning tree. Basestations “learn” the address of terminals by monitoring traffic fromterminals (i.e., to the root). When a base station receives (i.e., anATTACH.request) packet, destined for the root, the base station createsor updates an entry in its routing table for the terminal. The entryincludes the terminal address, and the address of the base station whichsent the packet (i.e., the hop address). When a base station receives anupstream packet (i.e., from the root, destined for a terminal) thepacket is simply forwarded to the base station which is in the routingentry for the destination. Upstream messages (i.e., to a terminal) arediscarded whenever a routing entry does not exist. Downstream messages(i.e., from a terminal to the root) are simply forwarded to the nextdownstream node (i.e., the parent in the branch of the spanning tree.

TERMINAL-TO-TERMINAL COMMUNICATIONS is accomplished by routing allterminal-to-terminal traffic through the nearest common ancestor. In theworst case, the root is the nearest common ancestor. A “ADDRESS SERVER”facilitates terminal-to-terminal communications (see below).

DELETING INVALID ROUTING TABLE ENTRIES is accomplished in several ways:connection oriented transport layer ensures that packets will arrivefrom nodes attached to the branch of the spanning tree within thetimeout period, unless a node is disconnected.)

2) Whenever the DLC entity in a parent fails RETRY MAX times to send amessage to a child node, is the node is logically disconnected from thespanning tree, with one exception. If the child is a SLEEPING terminal,the message is retained by the network entity in the parent for “count”hello times. The parent immediately attempts to deliver the messageafter it sends its next hello packet. If, after “count” hello times, themessage cannot be delivered, then the child is logically detached fromthe spanning tree. Detached node information is propagated downstream tothe root node, each node in the path of the DETACH packet must adjustits routing tables appropriately according to the following rules: a) ifthe lost node is a child terminal node, the routing entry for theterminal is deleted and a DETACH packet is generated, b) if the nodespecified in DETACH packet is a terminal and the node which deliveredthe packet is the next hop in the path to the terminal, then the routingtable entry for the terminal is deleted and the DETACH packet isforwarded, c) if the lost node is a child base station node then allrouting entries which specify that base station as the next hop aredeleted and a DETACH packet is generated for each lost terminal.

IN GENERAL, WHENEVER A NODE DISCOVERS THAT A TERMINAL IS DETACHED, ITPURGES ITS ROUTING ENTRY FOR THE TERMINAL. WHENEVER A NODE DISCOVERSTHAT A BASE STATION IS DETACHED, IT PURGES ALL ROUTING ENTRIESCONTAINING THE BASE STATION. ONLY ENTRIES FOR UPSTREAM NODES AREDELETED.

When DETACH packets reach the root node, they are added to a “detachedlist.” Nodes remain in the root node's detached list until a) the nodereattaches to the spanning tree, or b) the list entry times out. Thedetached list is included in hello messages and is propagated throughoutthe spanning tree.

For example, if a terminal detaches and reattaches to a different branchin the spanning tree, all downstream nodes in the new branch (quickly)“learn” the new path to the terminal. Nodes which were also in the oldpath change their routing tables and no longer forward packets along theold path. At least one node, the root, must be in both the old and newpath. A new path is established as soon as an end-to-end attach requestpacket from the terminal reaches a node which was also in the old path.

4) A node (quickly) learns that it is detached whenever it receives ahello message, from any node, with its address in the associateddetached list. The detached node can, optionally, send a globalATTACH.request, and then enters the UNATTACHED LISTEN state andreattaches as described above. After reattaching, the node must remainin a HOLD-DOWN state until its address is aged out of all detachedlists. During the HOLD-DOWN state the node ignores detached lists.

5) A node becomes disconnected and enters the UNATTACHED LISTEN statewhenever HELLO-RETRY-MAX hello messages are missed from its parent node.

6) A node enters the ATTACHED LISTEN state whenever a single hellomessage, from its parent, is missed. SLEEPING terminals remain awakeduring the ATTACHED LISTEN state. The state ends when the terminalreceives a data or hello message from its parent. The terminal becomesUNATTACHED when a) its address appears in the detached list of a hellomessage from an ode other than its parent, or b) HELLO-RETRY-MAX hellomessages are missed. The total number of hello slots spend in the LISTENstate is constant.

If a node in the ATTACHED LISTEN state discovers a path to the rootwhich is CHANGE-THRESHOLD shorter, it can attach to the shorter path.Periodically, SLEEPING terminals must enter the ATTACHED LEARN state todiscovery any changes (i.e., shorter paths) in the network topology.

Hello Synchronization.

All attached non-terminal nodes broadcast periodic “hello” messages indiscrete “hello slots” at calculated intervals. Base station nodes learnwhich hello slots are busy and refrain from transmitting during busyhello slots.

A terminal refrains from transmitting during the hello slot of itsparent node and refrains from transmitting during message slots reservedin a hello message.

The hello message contains a “seed” field used in a well-knownrandomization algorithm to determine the next hello slot for thetransmitting node and the next seed. The address of the transmittingnode is used as a factor in the algorithm to guarantee randomization.Nodes can execute the algorithm i times to determine the time (and seed)if the i-the hello message from the transmitter.

After attached, a base station chooses a random initial seed and anon-busy hello slot and broadcasts a hello message in that slot. Thebase station chooses succeeding hello slots by executing therandomization algorithm. If an execution of the algorithm chooses a busyslot, the next free slot is used and a hello displacement fieldindicates the offset from a calculated slot. Cumulative delays are notallowed (i.e., contention delays during the i hello transmission do noteffect the time of the i+1 hello transmission).

HELLO-TIME and HELLO-SLOT-TIME values are set by the root node andflooded throughout the network in hello messages. The HELLO-SLOT-TIMEvalue must be large enough to minimize hello contention.

A node initially synchronizes on a hello message from its parent. ASLEEPING node can power-down with an active timer interrupt to wake itjust before the next expected hello message. The network entity in basestation nodes can store messages for SLEEPING nodes and transmit themimmediately following the hello messages. This implementation enablesSLEEPING terminals to receive unsolicited messages. (Note that thenetwork layer always tries to deliver messages immediately, beforestoring them.) Retries for pending messages are transmitted in around-robin order when messages are pending for more than onedestination.

Note that a child node that misses i hello messages, can calculate thetime of the i+1 hello message. Transport layer theory and implementationnotes.

The transport layer provides reliable, unreliable, andtransaction-oriented services. Two types of transport connections aredefined: 1) a TCP-like transport connection may be explicitly requestedfor long-lived connections or 2) a VMTP-like connection-record may beimplicitly set up for transient connections. In addition, aconnectionless service is provided for nodes which support an end-to-endtransport connection with the host computer.

The interfaces to the next upper (i.e., application) layer include:CONNECT (access_point, node_name) LISTEN (access_point) UNITDATA(access_point, node_name, buffer, length) SEND (handle, buffer, length)RECEIVE (handle, buffer, length) CLOSE (handle)

The “handle” designates the connection type, and is the connectionidentifier for TCP-like connections.

SEND messages require a response from the network node (root orterminal) to which the message is directed.

UNITDATA messages do not require a response. UNITDATA is used to sendmessages to a host which is capable of supporting end-to-endhost-to-terminal transport connections.

Because the network layer provides an unreliable service, the transportlayer is required to detect duplicate packets and retransmit lostpackets. Detecting duplicates is facilitated by numbering transportpackets with unambiguous sequence numbers.

Transport Connections.

TCP-like transport connections are used for message transmission overlong-lived connections. The connections may be terminal-to-root orterminal-to-terminal (i.e., base stations are not involved in thetransport connection).

TCP-like transport connections are established using a 3-way handshake.Each end selects its initial sequence number and acknowledges the otherend's initial sequence number during the handshake. The node whichinitiates the connection must wait a MAX-PACKET-LIFE time, beforerequesting a connection, to guarantee that initial sequence numbers areunambiguous. Sequence numbers are incremented modulo MAX-SEQ, whereMAX-SEQ is large enough to insure that duplicate sequence numbers do notexist in the network. Packet types for establishing and breakingconnections are defined as in TCP.

A TCP-like connection is full-duplex and a sliding window is used toallow multiple outstanding transport packets. An ARQ bit in thetransport header is used to require an immediate acknowledgment from theopposite end.

VMTP-like connections are used for transient messages (i.e.terminal-to-terminal mail messages). VMTP-like connection records arebuilt automatically. A VMTP-like connection record is built (or updated)whenever a VMTP-like transport message is received. The advantage isthat an explicit connection request is not required. The disadvantage isthat longer and more carefully selected sequence numbers are required. AVMTP-like connection is half-duplex. (A full-duplex connection at ahigher layer can be built with two independent half-duplex VMTP-likeconnections.) Acknowledgments must be handled by higher layers.

Transport connections are defined by the network end-to-end destinationand source addresses.

A MAX_TP_LIFE timeout is associated with transport connections.Transport connection records are purged after a MAX_TP_LIFE time expireswithout activity on the connection. The transport entity in a terminalcan ensure that its transport connection will not be lost bytransmitting an empty time-fill transport packet whenever is TP_TIMEOUTtime expires without activity.

The transport entity in a node stores messages for possibleretransmission. Note that retransmissions may not always follow the samepath (primarily) due to moving terminals and the resulting changes inthe spanning tree. For example, the network entity in a parent node maydisconnect a child after the DLC entity reports a message deliveryfailure. The child will soon discover that it is detached and willreattach to the spanning tree. Now when the transport entity (i.e. inthe root) re-sends the message, it will follow the new path.

Transport Message Timing and Sleeping Terminals.

The transport entity in a terminal calculates a separate timeout forSEND and TRANSACTION operations. Initially, both timeouts are a functionof the distance of the terminal from the root node.

A TCP-like algorithm is used to estimate the expected propagation delayfor each message type. Messages, which require a response, areretransmitted if twice the expected propagation time expires before aresponse is received. SLEEPING terminals can power down for a largepercentage of the expected propagation delay before waking up to receivethe response message. Note that missed messages may be stored by thenetwork layer for “count” hello times.

Medium Access Control (MAC) Theory and Implementation Notes.

Access to the network communications channel is regulated in severalways: executing the full CSMA algorithm (see MAC layer above). Thesender retransmits unacknowledged messages until a RETRY_MAX count isexhausted.

The retry time of the DLC must be relatively short so that lost nodescan be detected quickly. When the DLC layer reports a failure to delivera message to the network layer, the network layer can 1) save messagesfor SLEEPING terminals for later attempts, or 2) DETACH the node fromthe spanning tree. Note that most lost nodes are due to movingterminals.

The node identifier part of the DLC address is initially all 0's for allnodes except the root node. The all 0's address is used by a node tosend and received data-link frames until a unique node identifier ispassed to the DLC entity in the node. (The unique node identifier isobtained by the network entity.)

Address Resolution.

Well-known names too are bound to network addresses in several ways:

The network address and TRANSPORT ACCESS ID of a name server, containedin the root, is well-known by all nodes.

A node can register a well-known name with the name server contained inthe root node.

A node can request the network access address of another applicationfrom the name server by using the well-known name of the application.

Possible Extensions.

Base station-to-base station traffic could also be routed through thecontroller if the backward learning algorithm included base stationnodes. (Each base station would simply have to remember which directionon its branch of the spanning tree to send data directed toward anotherbase station.)

The possibility of multiple controllers is kept open by including aspanning-tree identifier in address fields. Each controller defines aunique spanning tree. A node can be in more than one spanning tree, withseparate network state variables defined for each.

Appendix A attached hereto is a Master's Degree thesis entitled “MobileComputer Network Architecture” by the Applicant and contains additionaldisclosure on the subject matter of this application.

Thus, the preferred embodiment of the present invention describes anapparatus and a method of efficiently routing data through a network ofintermediate base stations in a radio data communication system.

In alternate embodiments of the present invention, the RF Networkscontain multiple gateways. By including a system identifier in theaddress field of the nodes, it is possible to determine which nodes areconnected to which networks.

FIG. 2 illustrates the overall open wireless local area network (OWL)architecture according to the present invention. Specifically, per IEEE(Institute of Electrical and Electronic Engineers) 802.3 Wired LocalArea Network (LAN) Specifications, two subnets, a wired subnet 101 and aremote, wired subnet 107 are illustrated. The subnets 101 and 107 arewired LAN's built in accordance with the IEEE 802 specifications.According to the present invention, a third subnet, a wireless subnet105, transparently interconnects is the wired subnets 101 and 107. Thewireless subnet 105 is referred to herein as an OWL radio network.Moreover, for reference herein, the wireless subnet 105 and the remote,wired subnet 107, together are referred to as an OWL subnet 103.Although, the wired subnet 101 is not part of the OWL subnet 103, itconstitutes a distribution LAN for the OWL subnet 103.

Depending on the specific implementation, an OWL radio network canfunction (i) as a stand-alone LAN to support wireless communicationbetween wireless communication devices, (ii) as a wireless subnet to awired LAN to provide wireless access to and between wirelesscommunication devices, (iii) as a wireless subnet to a wired LAN toprovide access to remote wired subnets, or (iv) as a wireless subnet toa wired LAN to provide access between the wired LAN, remote wiredsubnets and wireless communication devices. For example, as illustrated,the wireless subnet 105 provides for communication between the wiredsubnet 101, the remote subnet 107, and wireless communication devices(not shown in FIG. 2) within the wireless subnet 105.

FIG. 3 shows an exemplary expanded configuration of FIG. 2, providingadditional detail of the OWL radio network, the wireless subnet 105. Thewireless subnet 105 provides access to the wired subnet 101, the remotewired subnet 107, and wireless communication devices, such as mobileradio-equipped computers (MRCs) 116 and 118. Other types of wirelesscommunication devices include, but are not limited to, radio-equippedprinters or other peripherals, stationary radio-equipped computers,pagers, etc. In addition, although radio frequency wirelesscommunication is a preferred embodiment, other forms of wirelesscommunication, such as infrared transmissions, might also be used.

The OWL radio network, such as the wireless subnet 105, provides forwireless transparent bridging via several types of wireless domainaccess points. In particular, each OWL subnet has a single primarywireless domain access point (WDAPp), such as the WDAPp 113. The WDAPpprovides a single control point for the OWL subnet 103. The WDAPp 113has direct access to the distribution LAN, i.e., the wired subnet 101.The WDAPp 113 forwards information, packaged in frames per IEEE 802specification (hereinafter “802 frames”), between the wired subnet 101and the wireless subnet 103.

In addition to a WDAPp, the OWL radio network may also be configuredwith one or more distributed wireless domain access points. As does theWDAPp, a distributed wireless domain access point (WDAPd) providesdirect access to the wired subnet 101. However, each WDAPd in thenetwork exists within the domain of its control point, the WDAPp. Forexample, as illustrated, within the domain of the WDAPp 113, a WDAPd 112and a WDAPd 114 can be found. The WDAPd 112 and the WDAPd 114 forwards802 frames between the wired subnet 101 and the OWL subnet 103.

As previously stated, an OWL subnet may also include wired subnets otherthan, and remotely located from, the distribution LAN, i.e., the wiredsubnet 101. For example, the wired subnet 107 represents one such remotewired subnets. Although only one is illustrated, many such remote wiredsubnets may exist in an OWL subnet 103.

Associated with each remote wired subnets, a secondary wireless domainaccess point (WDAPs) can be found. Each WDAPs serves as a bridge betweena remote wired subnet and the OWL radio network. For example, a WDAPs117 serves as a bridge between the remote wired subnet 107 and thewireless subnet 105. Thus, the WDAPs 117 forwards 802 frames between theremote wired subnet 107 and the wireless subnet 105.

As illustrated, a remote station 119 directly participates in the remotewired subnet 107 in conformance with IEEE 802 specifications. A remotestation 111 similarly participates in the wired subnet 101. Each of theremote stations and wireless communication devices constitute “networknodes” in the OWL architecture. Moreover, any network node can freelycommunicate with any other network node. For example, the remote station111 can freely intercommunicate with the remote station 119, MRC 116 andMRC 118. Similarly, the MRC 116 can communicate with the MRC 118 and theremote stations 111 and 119.

Wireless media access points are also used in the OWL radio networkwhere needed. A wireless media access point (WMAP), such as a WMAP 115,is a radio equipped base station which extends the wireless coveragearea of a OWL radio network, such as the wireless radio network 103, tosupport larger wireless coverage areas than might be desirable withoutthe use of one or more WMAP's. A typical OWL radio network has multipleWMAP's with overlapping coverage areas. Thus, MRC's can roam betweencoverage areas and maintain network connectivity.

Similarly, communication need not always flow through the WDAPp 113. Forexample, the WDAPp 113 does not participate in the communication pathwaybetween the MRC 118 and the remote station 119. The MRC 118 forwardscommunication destined for the remote station 119 downstream, toward theWDAPp 113. The WMAP 115 receives the communication, identifies no entryfor the remote station 119 and, therefore, forwards the receivedcommunication downstream. The WDAPd 112 receives the communication, butdoes not find a routing table entry for the remote station 119. Thus,the WDAPd 112 converts the received communication into 802 frame(s) forforwarding outside of the radio network onto the wired subnet 101, i.e.,upstream. The WDAPd 114 hears the 802 frame(s), identifies a routingtable entry for the remote station 119, converts the 802 frame(s) forwireless transmission, and forwards the communication upstream. TheWDAPs 117 receives the wireless communication, and bridges thecommunication onto the wired subnet 107 in the form of 802 frame(s). Theremote station 119 receives the 802 frame(s), completing the transferwithout participation from the WDAPp 113.

FIGS. 4-6 illustrates OWL protocol stacks according to the presentinvention which are contained in the MAC sub layer of a standard ISOprotocol stack. In particular, an OWL MAC provides MAC sub layerservices to the LLC sublayer of the ISO data link layer. The OWL MAC issubdivided into MAC-D, MAC-R, MAC-Q and MAC-S sublayers. The MAC-Dsublayer is analogous to the data link layer in the ISO protocol stack.The MAC-D layer provides data link services to the MAC-R layer. It isresponsible for channel access control and the reliable transmission ofMAC-R PDU's. The MAC-R sublayer is analogous to the network layer in theISO protocol stack. The MAC-R layer provides routing services to theMAC-Q layer. It is responsible for correctly routing information throughthe OWL subnet, which may include multiple hops and circular physicalpaths. Such information is formatted into MAC-R protocol data units(PDUs) for routing. The MAC-Q sublayer adds reliability to the radionetwork by retransmitting lost PDUs. The MAC-Q layer is responsible fordiscarding out-of-sequence and duplicate PDUs. The MAC-Q sublayer can beimplemented as an entity in the MAC-R sublayer. The MAC-Q entities existat entry points to the radio network. The MAC-S sublayer is responsiblefor providing services for security, compression, etc. The MAC-Sentities exist at entry points to the OWL radio network.

As referred to herein, logical OWL nodes are MAC-R addressable entitiesin the OWL radio network. The logical OWL nodes functional entitieswhich can be contained within the various network devices. A logical OWLnode can be either a terminal node or a relay node. The terminal nodesare end points in the network. The MRC's 116 and 117 contain terminalnodes, i.e., an MRC contains the logical functionality of a terminalnode. Relay nodes forward PDUs at the MAC-R sublayer. The WMAP 115, forexample, contains a relay node.

FIG. 4 illustrates the MAC protocol stacks used in an exemplaryconfiguration to provide for communication between two terminal nodesvia a relay node. Each terminal node in the network contains a terminalprotocol stack which defines the terminal node as a network end-point.Each relay node in the network also contains a protocol stack, the“relay protocol stack”, which defines the relay node as a PDU forwardingentity.

For example, as illustrated, two terminal nodes may communicate witheach other via a relay node. The arrows shown represent the flow of datafrom a first terminal node (using a terminal protocol stack 151) to asecond terminal node (using a terminal protocol stack 153) via a relaynode (using a relay protocol stack 155). The upper layers of the relayprotocol stack 155 are used to process PDUs addressed to the relay node.

FIG. 5 illustrates another type of protocol stack used in the network.An OWL bridge protocol stack 201 is illustrated which is used by eachwireless domain access point (WDAP), an OWL bridge, to bridge a wirelesssubnet to an 802 type wired subnet. Each bridge protocol stack, such asbridge protocol stack 201, contains a relay protocol stack. In addition,the 802.3 MAC-D sublayer is used to send OWL PDUs over an 802.3 linkthat is part of the OWL radio network. The MAC-Q and MAC-S sublayersserve as proxy MAC-Q and MAC-S entities for stations, such as the remotestations 111 and 119 (FIG. 1), on the 802.3 subnet. For convenience, theMAC-Q and MAC-S sublayers also service PDUs for the local WDAP 802address.

FIG. 6 illustrates how data flows through the bridge protocol stack ofFIG. 5. A dashed line 259 represents the path a PDU takes as it travelsfrom a station 251 on an 802.3 LAN to a terminal 255 in the OWL radionetwork. A WDAP, using the bridge protocol stack 201, bridges the PDUfrom the 802.3 subnet to the radio subnet. A solid line 257 representsthe path a PDU takes as it travels from a terminal 253 to the terminal255 wherein both terminals are in the radio network. In this example,because the path is contained in the radio network, the PDU does nothave to be bridged.

In general, PDUs are bridged across subnet boundaries, and PDUs arerouted within the radio network. A bridging entity in a WDAP uses aforwarding database to determine if a PDU should be bridged from onesubnet to another subnet. A forwarding database contains a list of 802addresses associated with each subnet to which the WDAP is attached. AMAC-R entity uses a routing table to determine how a PDU should berouted within an OWL subnet.

Further detail regarding this embodiment can be found in the attachedAppendices B and C. Appendix B provides further detail regarding the OWLnetwork architecture, while Appendix C describes the network frameformats used in communication exchanges.

FIG. 7 illustrates an exemplary configuration of the OWL architectureaccording to the present invention. Therein, a wired subnet 265 andremote wired subnets 287 and 289, are configured in accordance with IEEE802 standards. A WDAPp 267, utilizing the bridging protocol stack shownin FIG. 5, acts as a spanning tree root node, providing access betweenan OWL radio network 261 and the wired subnet 265. Note that a WDAPd 263is also illustrated which uses a bridging protocol stack. The WDAPd 263could instead be used as the root of the spanning tree (becoming thenetwork WDAPp) should the WDAPp break down. In addition, two exemplaryremote stations, a host computer 285 and a personal computer 264, areconnected to the wired subnet 265.

A WDAPs 271 constitutes an access point to and from the remote wiredsubnet 287. Similarly, a WDAPs 273 constitutes an access point to andfrom the remote wired subnet 289. Both WDAPs's utilize the bridgeprotocol stack of FIG. 4. Moreover, each remote wired subnet 287 and 289illustrate the participation of a remote station, a personal computer286 and 288, respectively. Also, wireless communication devices, such asan MRC 283 and an MRC 284, can move through the OWL radio network 261while maintaining network connectivity. Any wireless communicationdevice can communicate with any other wireless communication device orwith any remote station. Similarly, any remote station can communicatewith any other remote station or with any wireless communication device.

A plurality of intermediate wireless access points, i.e., the WMAP's269, 275, 277 and 279, along with the wired access points, i.e., theWDAP's 267, 263, 271 and 273, providing for communication among any ofthe remote stations and wireless communication devices. Because WDAP'sare wired to corresponding wired subnets, they are referred to herein asa “wired access points” even though WDAP's also participate wirelesslywithin the OWL radio network. Specifically, the plurality ofintermediate wireless access points and the wired access points,together, form a spanning tree which provides for routing through theOWL radio network.

Specifically, nodes in an OWL radio network are organized into a networkspanning tree. A WDAPp serves as a root of the spanning tree, whilePDU's are routed along branches of the spanning tree. Routing toward theroot is referred to herein as “downstream” routing. Routing away fromthe root is referred to as “upstream” routing. Referring to FIG. 7, theWDAPp 267 constitutes the root of the spanning tree formed within theOWL radio network 261. Communication flowing upstream, away from theWDAPp 267, might include a plurality of relay points along the way toreach a destination. For example, to reach the personal computer 286,data from the personal computer 264 first travels along the wired subnet265 to the root of the spanning tree, i.e., to the WDAPp 267. The WDAPp267, using a spanning tree routing table, identifies that the WMAP 269is the next relay point upstream to the personal computer 286.Therefore, the WDAPp 267 forwards the data upstream to the WMAP 269.Upon receipt, the WMAP 269 similarly identifies the WMAP 275 andforwards the data upstream. In turn, the WMAP 275 forwards the data tothe WDAPs 271. Finally, the WDAPs 271 relays the data along the remotewired subnet to the personal computer 286.

A spanning tree, which provides the data pathways throughout the OWLradio network, is stored and maintained by each participant in the OWLradio network. Each network node stores and modifies information whichspecifies how local communication traffic should flow. Optimal spanningtrees assure efficient, adaptive (dynamic) routing of informationwithout looping.

Nodes in the OWL radio network are generally categorized as beingattached or unattached to the network spanning tree. Upon initializationof an OWL radio network, only the root node is attached. A single WDAPcan be designated to contain the root node, or multiple root candidatescan negotiate to determine which node assumes the root status. Once theroot is designated, the WDAP containing the root node, i.e., the WDAPp,begins periodically broadcasting messages offering attachment. Thesemessages are referred to as “HELLO response PDU's”. Unattached nodes,i.e., other WDAP's or WMAP's, receiving the Hello response PDU's mayattach to the OWL radio network via the WDAPp. With the exception ofterminal nodes, each network node that becomes attached also beginsperiodically transmitting Hello response PDU's. The nodes receivingHello response PDU's from newly attached nodes may attach to the networkvia the newly attached nodes. This process continues until all of thenetwork nodes are attached. Moreover, to attach to the network, an“Attach request PDU” must be sent and relayed downstream toward the rootnode. In response, the root sends an “Attach response PDU” back throughthe network to confirm the attachment. Upon receiving the Attach requestPDU, each network node places an entry in a spanning tree routing tableindicating the identity of both the requesting node and the node whichlast transmitted (relayed) the request. In this manner, routing tablescan be constructed and maintained. As described in Appendix B, othertypes of PDU's, i.e., Registration or Data request PDU's, are also beused to create and modify routing tables.

Using the spanning tree routing table, any network node can determinewhether any other network node exists upstream or not. In particular, ifan entry exists, the destination node must have previously sent a PDU(possibly the Attach request PDU) through that relay node in adownstream pathway to root node. Thus, if the entry exists, the relaynode routes the PDU upstream per routing table instruction toward thedestination node. However, if no entry for the destination node exists,the relay node can not determine the location of the destination node.Therefore, the relay node sends the PDU downstream toward the root node.If any node along the downstream pathway identifies the destination nodein its routing table, that node relays the PDU upstream toward thedestination. More detail regarding this entire procedure can be found inAppendix B, for example at pages 17-22.

FIG. 8 illustrates an alternate embodiment of the present inventionwherein a WDAPs 291 participates in more than one OWL radio network.Specifically, the WDAPs 291 participates in OWL radio networks 293 and295. For example, a personal computer 299 initiates communication toanother remote station, a PC 301, by transmitting a message upon a wiredsubnet 297. Upon receiving the message, the WDAPs 291 checks its routingtable and, because no entry is found, routes the message downstreamthrough both the OWL radio networks 293 and 295. When the upstreamrouting in the OWL network 295 reaches a WDAPp 303, an entry for thepersonal computer 301 is still not found. Therefore, the WDAPp 303unicasts the message onto a wired subnet 305. Because the PC 101 doesnot reside on the subnet 305, the message reaches a dead-end and isignored. However, when the message reaches a WDAPp 307, and the WDAPp307 does not find an entry for the personal computer 301, it unicaststhe message onto a wireless subnet 309 for receipt by the personalcomputer 301.

FIG. 9 is a diagram illustrating yet another variation of the presentinvention wherein two OWL radio networks are used. Specifically, a WDAPp425 provides access for communication between a wired subnet 401 and aremote wired subnet 403. Utilizing a spanning tree configuration, theplurality of intermediate wireless access points, such as WMAP 431, 433and 435, provide a communication pathway between a WDAPs 441 and theWDAPp 425. Together, the WMAP's, the WDAPp 425 and the WDAPs 441 providefor communication among a plurality of wireless communication devices,such as MRC's 445 and 447, and the remote stations on the subnets 401and 403, such as a host computer 407 and personal computers 409, 411 and413.

Similarly, communication interconnectivity is provided via a second OWLradio network 423. The second network 423 provides for communicationflow between the wired subnet 401 and a remote wired subnet 405 via aWDAPp 453, WDAPs 457 and a WMAP 455. Again full communication among awireless communication device 449, a personal computer 451, the hostcomputer 407 and the personal computer 409 is provided for.

Additionally, communication among remote stations on the remote subnets403 and 405 and wireless communication devices in either network 421 or423 is provided. For example, the host computer 407 may communicate tothe personal computer 413 via the OWL radio network 421. To do so, thehost computer 407 first transmits a message destined for the personalcomputer 413 onto the wired subnet 401. In response, the WDAPp 425receives the message, identifies a routing table entry for the personalcomputer 413, and, in one exemplary spanning tree configuration, routesthe message up-stream toward the personal computer 413 via a wirelesstransmission to the WMAP 431. When the WMAP 431 receives the messagefrom the down-stream WDAPp 425, the WMAP 431 checks with its routingtable. Upon finding a routing table entry for the personal computer 413,the WMAP 431 identifies the WMAP 433 as the next relay point in thepathway to the personal computer 413. Thus, via wireless transmission,the WMAP 433 relays the message to the WMAP 433. Upon receiving themessage, the WMAP 433 similarly identifies a routing table entry for thepersonal computer 413, and routes the message to the WMAP 435. In turn,the WMAP 435 routes the message to the WDAPs 441. The WDAPs 441 finallysends the message to the personal computer 413 via the wired subnet 403.Together, the WDAPp 425, WMAP's 431-435 and WDAPs 441 thus provide acommunication pathway between the host computer 407 and the personalcomputer 413.

As noted previously, each WMAP and each WDAP maintains a spanning treerouting table, i.e., a forwarding database, which specifies how localcommunication traffic should flow therethrough. Upon receipt of amessage, the WMAP or WDAP first identifies the destination of themessage. The message destination is then compared with the spanning treerouting table. If an entry in the routing table exists for the messagedestination, corresponding information regarding the next relay point inthe pathway to the message destination is retrieved from the routingtable. Such information includes the handle of the next relay point andthe communication channel required, for example.

As another example, the personal computer 411 may communicate with thepersonal computer 451 by utilizing both of the OWL radio networks 421and 423. Specifically, the personal computer 411 transmits a message tothe personal computer 451 on the wired subnet 403. In response, theWDAPs 441 receives the message, recognizes that the personal computer451 is not within its spanning tree routing table, and routes themessage downstream to the WMAP 435. The WMAP 435 receives the messagefrom the WDAPs 441, recognizes that the personal computer 451 is notwithin its routing table, and thus routes the message to its downstreamancestor, i.e., the WMAP 433. Similarly, upon receiving the message,and, because no entry exists in its routing table, the WMAP 433 forwardsthe message downstream to its spanning tree ancestor, the WMAP 431.Again, finding no routing table entry for the personal computer 451, theWMAP 431 routes the message to the spanning tree root node, i.e., theWDAPp 425. In turn, finding no routing table entry for the personalcomputer 451, the WDAPp 425, depending on predetermined program control,may: 1) do nothing, aborting the communication attempt; 2) unicast themessage on all ports except the one from which the message was received,i.e., floods the ports with the message; 3) unicast the message onselected ports; or 4) consult a routing control field in the messageitself to determine which of the above three options to choose.

Assuming program control permits, the WDAPp 425 unicasts the messageintended for the personal computer 451 onto the wired subnet 401. Uponreceiving the unicast message, the WDAPp 453 locates the personalcomputer 451 in its routing table, and routes the message upstream tothe WMAP 455. The WMAP 455 similarly identifies a personal computer 451entry, and routes to the next upstream node, i.e., to a WDAPs 457.Finally, the WDAPs 457, identifying a personal computer 451 routingtable entry, sends the message via the remote wired subnet 405 to thepersonal computer 451.

The illustrated communication network similarly supports communicationamong wireless communication devices, such as MRC's 445, 447 and 449,and remote stations, such as the host computer 407 and the personalcomputers 409, 411, 413 and 451.

As previously articulated, further detail regarding the presentinvention can be found with reference to the Appendices A and B.Moreover, additional detail may also be found in the patent applicationscited above under the heading “Incorporation By Reference”. Suchapplications are incorporated herein by reference in their entirety.

As is evident from the description that is provided above, theimplementation of the present invention can vary greatly depending uponthe desired goal of the user. However, the scope of the presentinvention is intended to cover all variations and substitutions whichare and which may become apparent from the illustrative embodiment ofthe present invention that is provided above, and the scope of theinvention should be extended to the claimed invention and itsequivalents.

1-24. (canceled)
 25. In a radio frequency (RF) multi-hop communicationnetwork in which the RF multi-hop communication network comprises amobile communication node and a plurality of bridging nodes, a bridgingnode of the plurality of bridge nodes comprising: a wireless bridgingnode configured to form a spanning tree with one or more of otherbridging nodes of the plurality of bridging nodes to dynamically arrangeand rearrange communication pathways that involve the mobilecommunication node in relation to the plurality of bridging nodes. 26.The bridging node according to claim 25, wherein the wireless bridgingnode is configured to revise locally stored information relating toroaming of the mobile communication node within the network.
 27. Thebridging node according to claim 25, wherein the wireless bridging nodeis configured to revise locally stored information relating to alocation of the mobile communication node within the network.
 28. In amulti-hop communication network in which the multi-hop communicationnetwork comprises a plurality of wireless mobile communication nodes anda plurality of bridging nodes, a bridging node of the plurality ofbridging nodes comprising: a wireless bridging node configured to form aspanning tree that specifies communication pathways among the pluralityof wireless mobile communication nodes.
 29. The bridging node accordingto claim 28, wherein the wireless bridging node is configured todynamically create and revise the communication pathways with one ormore bridging nodes of the plurality of bridging nodes.
 30. The bridgingnode according to claim 28, wherein the wireless bridging node isconfigured to dynamically create and revise the communication pathwayswith one or more bridging nodes of the plurality of bridging nodes tomaintain connectivity.
 31. The bridging node according to claim 28,wherein the wireless bridging node is configured to dynamically revisethe communication pathways to enable communication with the wirelessmobile communication nodes moving within the network.